<?php

namespace App\Models\Order;

use App\Models\BaseModel;

class OrderInfoModel extends BaseModel
{
    /**
     * 与模型关联的数据表。
     *
     * @var string
     */
    protected $table = 'order_info';

    /**
     * 可以被批量赋值的属性。
     *
     * @var array
     */
    protected $fillable = array(
        'order_id',
        'orderno',
        'status',
        'status_desc',
        'iccid',
        'channel_id',
        'channel_name',
        'channel_json',
        'channel_num',
        'age',
        'sex',
        'post_qu',
        'time',
        'source',
        'created_by',
        'created_by_name',
        'created_at',
        'updated_by',
        'updated_at',
        'deliver_at',
        'sign_at',
        'activat_at',
        'three_time_at',
        'remark',
        'shop_id',
        'shop_str',
        'goods_id',
        'goods_name',
        'product_name',
        'product_id',
        'author_id',
        'author_name',
        'sell_name',

    );
    // public $timestamps = false;

    public function aliasRable($alias)
    {
        return $this->setTable($alias);
    }

    /**
     * 查询数据需要过滤掉的属性。
     *
     * @var array
     */

    protected $hidden = array(
        'updated_at'
    );
    //返回关键字段
    public function getTableField()
    {
        return $this->fillable;
    }
    /**
     * 建表语句
     */
    protected function buildTable($name = '')
    {
        $tablename = $this->table;
        if (!empty($name)) {
            $tablename = $name;
        }
        $table  = "CREATE TABLE IF NOT EXISTS  $tablename (
            `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
            `order_id` int(11) DEFAULT '0' COMMENT '订单id',
            `orderno` varchar(255) DEFAULT '' COMMENT '本系统订单号',
            `status` tinyint(3) DEFAULT '0' COMMENT '订单状态',
            `status_desc` varchar(100) DEFAULT '提交中' COMMENT '订单状态解释',
            `iccid` varchar(100) DEFAULT '' COMMENT '购买号码',
            `channel_id` int(11) DEFAULT '0' COMMENT '通道',
            `channel_name` varchar(100) DEFAULT '' COMMENT '通道名称',
            `channel_json` varchar(255) DEFAULT '' COMMENT '提交的通道 通道id 通道名称 返回错误信息',
            `age` tinyint(3) DEFAULT '0' COMMENT '年龄',
            `sex` tinyint(1) DEFAULT '1' COMMENT '性别 1 男性 2 女性',
            `post_qu` varchar(100) DEFAULT '' COMMENT '区',
            `time` char(2) DEFAULT '' COMMENT '时间段 24小时制',
            `source` tinyint(2) DEFAULT '0' COMMENT '来源',
            `shop_id` int(11) DEFAULT '0' COMMENT '店铺id',
            `shop_str` varchar(255) DEFAULT '0' COMMENT '店铺字符串 使用逗号隔开',
            `created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间 下单时间',
            `updated_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间 下单时间',
            `deliver_at` datetime DEFAULT NULL COMMENT '发货时间',
            `sign_at` datetime DEFAULT NULL COMMENT '签收时间',
            `activat_at` datetime DEFAULT NULL COMMENT '激活时间',
            `remark` varchar(500) DEFAULT NULL COMMENT '备注',
            PRIMARY KEY (`id`),
            KEY `order_id` (`order_id`),
            KEY `status` (`status`),
            KEY `channel_id` (`channel_id`),
            KEY `source` (`source`)
            ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT='订单状态更改的记录表';";
        return $table;
    }
    /**
     * 插入新的字段
     */
    protected function bulidField()
    {
        //例子
        $array = [
            'channel_num' => "tinyint(2) DEFAULT 1 COMMENT '提交了多少次 提交成功了'",
            'three_time_at' => "datetime DEFAULT null COMMENT '提交到第三方的时间'",
            // 'goods_id' => "int(11) DEFAULT null COMMENT '商品id'",
            // 'goods_name' => "varchar(100) DEFAULT null COMMENT '商品名称'",
            // 'product_id' => "int(11) DEFAULT null COMMENT '产品id'",
            // 'product_name' => "varchar(100) DEFAULT null COMMENT '产品名称'",
            // 'author_id' => "varchar(100) DEFAULT null COMMENT '达人id'",
            // 'author_name' => "varchar(255) DEFAULT null COMMENT '达人名称'",
            // 'sell_name' => "varchar(255) DEFAULT null COMMENT '达人名称'",
        ];
        return $array;
    }
    // 关联 role表
    public function userToRole($role)
    {
        // return $this->hasMany(Role::className(),);
    }
}
